The present invention relates to data compression. More particularly, the present invention relates to performing adaptive compression on individual data segments of a data stream.
When data is stored to a local or remotely located storage medium, the data is often compressed. There are a variety of compression algorithms that may be applied to the data. However, different compression algorithms have widely varying results depending upon the type of data being compressed. Even within a file, individual data blocks may exhibit different characteristics and may compress differently when the same compression algorithm is applied to the data segments.
Adaptive data compression has been performed to apply different compression algorithms to individual data segments of a file. For instance, U.S. Pat. No. 4,929,946, entitled “Adaptive data compression apparatus including run length encoding for a tape drive system,” issued May 29, 1990 to O'Brien, et al, which is incorporated herein by reference for all purposes, discloses such a system. Such systems generally consider the type of data being compressed. However, there are a variety of other factors that can affect the compression task that such standard approaches to adaptive data compression do not consider.
In view of the above, it would be beneficial if an adaptive compression system could be improved to increase the efficiency with which data is compressed.